#ifndef __XMESH_MESH_ITERATOR_H
#define __XMESH_MESH_ITERATOR_H

namespace math 
{

	template <typename Value, unsigned dim> class Face; 

	struct mesh_tag ;
	struct face_tag ;
	struct vertex_tag ; 
	struct edge_tag ; 
	struct halfedge_tag ;

	template <typename object_type> struct face_iterator {} ;
	template <typename object_type> struct vertex_iterator {} ;
	template <typename object_type> struct edge_iterator {} ; 
	template <typename object_type> struct halfedge_iterator {} ; 

	// Define iterator for mesh object . 
/*
	template <> struct face_iterator <mesh_tag> : public std::iterator <std::bidirectional_iterator_tag, Face <value_type, dim> >{};
	template <> struct vertex_iterator <mesh_tag> {};
	template <> struct edge_iterator <mesh_tag> {};
	template <> struct halfedge_iterator <mesh_tag> {};
*/
	// Define 

}
#endif
